package com.ht.managermentserver.config;

import com.baomidou.mybatisplus.autoconfigure.MybatisPlusPropertiesCustomizer;
import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * mybatisplus 配置
 *
 * @author czy
 */
@Configuration
@EnableTransactionManagement
@MapperScan("com.ht.managermentserver.mapper")
public class MybatisPlusConfig {

  /** 乐观锁 */
  @Bean
  public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    return new OptimisticLockerInterceptor();
  }

  /** 分页插件 */
  @Bean
  public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
  }

  @Bean
  public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
    return plusProperties ->
        plusProperties.getGlobalConfig().getDbConfig().setKeyGenerator(new H2KeyGenerator());
  }
}
